﻿using System;
using System.Collections.Generic;
using System.Linq;
using Xcj.Mes.WholeLine.DataBase.Entity;

namespace Xcj.Mes.DataBase.Interface
{
    //这个接口的定义表示一个通用的服务接口，用于操作实体对象，同时还提供了资源释放的能力。
    public interface IBaseService<T> : IDisposable where T : BaseEntity, new()//它定义了一个名为 IBaseService<T> 的公共接口，该接口有一个泛型类型参数 T。这个接口继承自 IDisposable 接口，并且要求泛型类型参数 T 必须是 BaseEntity 类型的子类，并且必须具有一个无参数的公共构造函数。
    {
        void Add(T Entity, bool IsSave);

        void Edit(T Entity, bool IsSave);

        void Del(T Entity, bool IsSave);
        
        void KeepLastData(int keepCount = 1000);

        void Save();

        IQueryable<T> All();

        T One(Int64 Id);

        void Export(string ExportName, List<T> t, string SheetName = "数据导出");
    }
}
